package com.alibaba.middleware.hsf.optihessian;

import com.alibaba.middleware.hsf.Data;

import com.taobao.hsf.com.caucho.hessian.io.HSFHessian2Output;
import com.taobao.hsf.com.caucho.hessian.io.SerializerFactory;
import com.taobao.hsf.com.caucho.hessian.util.IdentityIntMap;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

/**
 * @author weipeng2k 2017年12月27日 上午11:00:20
 */
public class Serial {

    public static void main(String[] args) throws IOException {
        IdentityIntMap identityIntMap = new IdentityIntMap(256);

        for (int i = 0; i < 10; i++) {
            ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
            HSFHessian2Output output = new HSFHessian2Output(byteArray, identityIntMap);
            SerializerFactory serializerFactory = new SerializerFactory();
            // 兼容1.0，允许对象不实现Serializable接口
            serializerFactory.setAllowNonSerializable(true);
            output.setSerializerFactory(serializerFactory);
            // 兼容1.0，允许对象不实现Serializable接口
            output.writeObject(Data.gen());
            output.flush();

            System.out.println(byteArray.toByteArray().length);
        }
    }

}
